home *** CD-ROM | disk | FTP | other *** search
- SAU
- | |
- 1 IBM BIOS QUICK REFERENCE SUMMARY | 2 |
- by DAVID E. POWELL | |
- All values are in hex | ┌─────────────────────────────┐ |
- | │ INT 09 - KEYBOARD INTERRUPT │ |
- ┌────────────────┐ | └─────────────────────────────┘ |
- │ BIOS DATA AREA │ | |
- └────────────────┘ | INPUT PARAMETERS: NONE |
- | OUTPUT PARAMETERS: NONE |
- ADDR. SIZE DESCRIPTION | MEMORY: |
- | |
- 40:00 WORD COM1 PORT ADDRESS | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
- 40:02 WORD COM2 PORT ADDRESS | │7│6│5│4│3│2│1│0│ 40:17 |
- 40:04 WORD COM3 PORT ADDRESS | └─┴─┴─┴─┴─┴─┴─┴─┘ |
- 40:06 WORD COM4 PORT ADDRESS | │ │ │ │ │ │ │ │ |
- 40:08 WORD LPT1 PORT ADDRESS | │ │ │ │ │ │ │ └───── RIGHT SHIFT KEY DEPRESSED |
- 40:0A WORD LPT2 PORT ADDRESS | │ │ │ │ │ │ └─────── LEFT SHIFT KEY DEPRESSED |
- 40:0C WORD LPT3 PORT ADDRESS | │ │ │ │ │ └───────── CONTROL SHIFT KEY DEPRESSED |
- 40:0E WORD LPT4 PORT ADDRESS | │ │ │ │ └─────────── ALTERNATE SHIFT KEY DEPRESSED |
- 40:10 WORD EQUIPMENT FLAG (SEE INT 11) | │ │ │ └───────────── SCROLL LOCK STATE HAS BEEN TOGGLED|
- 40:13 WORD MEMORY SIZE IN KBYTES | │ │ └─────────────── NUM LOCK STATE HAS BEEN TOGGLED |
- 40:17 BYTE KEYBOARD FLAG BYTE 0 (SEE INT 9) | │ └───────────────── CAPS LOCK STATE HAS BEEN TOGGLED |
- 40:18 BYTE KEYBOARD FLAG BYTE 1 (SEE INT 9) | └─────────────────── INSERT STATE IS ACTIVE |
- 40:19 BYTE STORAGE FOR ALTERNATE KEYPAD ENTRY | |
- 40:1A WORD POINTER TO KEYBOARD BUFFER HEAD | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
- 40:1C WORD POINTER TO KEYBOARD BUFFER TAIL | │7│6│5│4│3│2│1│0│ 40:18 |
- 40:1E 20BYTES KEYBOARD BUFFER | └─┴─┴─┴─┴─┴─┴─┴─┘ |
- 40:3E BYTE DRIVE RECALIBRATION STATUS | │ │ │ │ │ │ │ │ |
- 40:3F BYTE MOTOR STATUS | │ │ │ │ │ │ │ └───── LEFT CONTROL KEY DEPRESSED |
- 40:3E BYTE DRIVE RECALIBRATION STATUS | │ │ │ │ │ │ └─────── LEFT ALT SHIFT KEY DEPRESSED |
- 40:3F BYTE MOTOR STATUS | │ │ │ │ │ └───────── SYSTEM KEY DEPRESSED AND HELD |
- 40:40 BYTE MOTOR OFF COUNTER (DECR. BY TIMER) | │ │ │ │ └─────────── SUSPEND KEY HAS BEEN TOGGLED |
- 40:41 BYTE STATUS OF LAST DISKETTE OPERATION | │ │ │ └───────────── SCROLL LOCK KEY IS DEPRESSED |
- 40:42 7 BYTES NEC STATUS | │ │ └─────────────── NUM LOCK KEY IS DEPRESSED |
- 40:49 BYTE CURRENT CRT MODE | │ └───────────────── CAPS LOCK KEY IS DEPRESSED |
- 40:4A WORD NUMBER OF COLUMNS ON SCREEN | └─────────────────── INSERT KEY IS DEPRESSED |
- 40:4C WORD REGEN BUFFER LENGTH IN BYTES | |
- 40:4E WORD STARTING OFFSET OF REGEN BUFFER | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
- 40:50 8 WORDS CURSOR POSITION PAGES 1-8 | │7│6│5│4│3│2│1│0│ 40:96 |
- 40:60 BYTE END LINE FOR CURSOR | └─┴─┴─┴─┴─┴─┴─┴─┘ |
- 40:61 BYTE START LINE FOR CURSOR | │ │ │ │ │ │ │ │ |
- 40:62 BYTE CURRENT PAGE BEING DISPLAYED | │ │ │ │ │ │ │ └───── LAST CODE WAS THE E1 HIDDEN CODE |
- 40:63 WORD BASE PORT ADDRESS FOR ACTIVE DISPLAY | │ │ │ │ │ │ └─────── LAST CODE WAS THE E0 HIDDEN CODE |
- 40:65 BYTE CURRENT SETTING OF THE 3X8 REGISTER | │ │ │ │ │ └───────── RIGHT CTL KEY DOWN |
- 40:66 BYTE CURRENT PALETTE SETTING COLOR CARD | │ │ │ │ ├─────────── RIGHT ALT KEY DOWN |
- 40:67 DWORD TEMP. STORAGE FOR SS:SP DURING SHUTDOWN | │ │ │ │ └─────────── ALT GRAPHICS KEY DOWN (WT ONLY) |
- 40:6C DWORD TIMER COUNTER LOW WORD, HIGH WORD | │ │ │ └───────────── ENHANCED KEYBOARD INSTALLED |
- 40:70 BYTE 24 HOUR TIMER OVERFLOW | │ │ └─────────────── FORCE NUM LOCK IF RD ID & KBX |
- 40:71 BYTE BIOS BREAK FLAG (BIT 7 = BREAK KEY HIT) | │ └───────────────── LAST CHAR WAS FIRST ID CHAR |
- 40:72 WORD RESET FLAG (1234 = SOFT RESET) | └─────────────────── DOING A READ ID (MUST BE BIT0) |
- 40:74 BYTE STATUS OF LAST HARD DISK OPERATION | |
- 40:75 BYTE NUMBER OF HARD FILES ATTACHED | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
- 40:77 BYTE PORT OFFSET TO CURRENT HF ADAPTER | │7│6│5│4│3│2│1│0│ 40:97 |
- 40:78 4 BYTES TIMEOUT VALUE FOR LPT1,LPT2,LPT3,LPT4 | └─┴─┴─┴─┴─┴─┴─┴─┘ |
- 40:7C 4 BYTES TIMEOUT VALUE FOR COM1,COM2,COM3,COM4 | │ │ │ │ │ │ │ │ |
- 40:80 WORD KEYBOARD BUFFER START OFFSET (SEG=40) | │ │ │ │ │ │ │ └───── SCROLL LOCK INDICATOR |
- 40:82 WORD KEYBOARD BUFFER END OFFSET (SEG=40H) | │ │ │ │ │ │ └─────── NUM LOCK INDICATOR |
- 40:84 BYTE ROWS ON THE SCREEN (EGA ONLY) | │ │ │ │ │ └───────── CAPS LOCK INDICATOR |
- 40:85 WORD BYTES PER CHARACTER (EGA ONLY) | │ │ │ │ └─────────── CIRCUS SYSTEM INDICATOR |
- 40:87 BYTE MODE OPTIONS (EGA ONLY) | │ │ │ └───────────── ACK RECEIVED |
- 40:88 BYTE FEATURE BIT SWITCHES (EGA ONLY) | │ │ └─────────────── RESEND RECEIVED FLAG |
- 40:8B BYTE LAST DISKETTE DATA RATE SELECTED | │ └───────────────── MODE INDICATOR UPDATE |
- 40:8C BYTE HARD FILE STATUS RETURNED BY CONTROLLER | └─────────────────── KEYBOARD TRANSMIT ERROR FLAG |
- 40:8D BYTE HARD FILE ERROR RETURNED BY CONTROLLER | |
- 40:8E BYTE HARD FILE INTERRUPT (BIT 7=WORKING INT) | |
- 40:90 4 BYTES MEDIA STATE DRIVE 0,1,2,3 | 40:1E = KEYBOARD BUFFER (20H BYTES) |
- 40:94 2 BYTES TRACK CURRENTLY SEEKED TO DRIVE 0,1 | 40:1C = BUFFER TAIL POINTER |
- 40:96 BYTE KEYBOARD FLAG BYTE 3 (SEE INT 9) | 40:72 = 1234H IF CTL-ALT-DEL PRESSED ON KEYBOARD |
- 40:97 BYTE KEYBOARD FLAG BYTE 2 (SEE INT 9) | INT 05 INVOKED IF PRINT SCREEN KEY PRESSED. |
- 40:98 DWORD POINTER TO USERS WAIT FLAG | INT 1B INVOKED IF CTL-BREAK KEY SEQUENCE PRESSED. |
- 40:9C DWORD USERS TIMEOUT VALUE IN MICROSECONDS | INT 15, AH=85 INVOKED ON PC/AT AND AFTER IF SYSTEM |
- 40:A0 BYTE RTC WAIT FUNCTION IN USE | REQUEST KEY IS PRESSED. |
- 40:A1 BYTE LANA DMA CHANNEL FLAGS | INT 15, AH=4F INVOKED ON MACHINES AFTER PC/AT WITH |
- 40:A2 2 BYTES STATUS LANA 0,1 | AL = SCAN CODE |
- 40:A4 DWORD SAVED HARDFILE INTERRUPT VECTOR | |
- 40:A8 DWORD EGA POINTER TO PARAMETER TABLE | ┌─────────────────────┐ |
- 40:B4 BYTE KEYBOARD NMI CONTROL FLAGS (CONVERTIBLE) | │ INT 10 - VIDEO BIOS │ |
- 40:B5 DWORD KEYBOARD BREAK PENDING FLAGS (CONVERTIBLE)| └─────────────────────┘ |
- 40:B9 BYTE PORT 60 SINGLE BYTE QUEUE (CONVERTIBLE) | |
- 40:BA BYTE SCAN CODE OF LAST KEY (CONVERTIBLE) | INPUT PARAMETERS: |
- 40:BB BYTE POINTER TO NMI BUFFER HEAD (CONVERTIBLE) | |
- 40:BC BYTE POINTER TO NMI BUFFER TAIL (CONVERTIBLE) | AH = 00 - SET VIDEO MODE |
- 40:BD 16BYTES NMI SCAN CODE BUFFER (CONVERTIBLE) | |
- 40:CE WORD DAY COUNTER (CONVERTIBLE AND AFTER) | AL = 00 - 40x25 ALPHANUMERIC B/W |
- 50:00 BYTE PRINT SCREEN STATUS BYTE | = 01 - 40x25 ALPHANUMERIC COLOR |
- | = 02 - 80x25 ALPHANUMERIC B/W |
- ┌───────────────────────┐ | = 03 - 80x25 ALPHANUMERIC COLOR |
- │ INT 05 - PRINT SCREEN │ | = 04 - 320x200 COLOR GRAPHICS |
- └───────────────────────┘ | = 05 - 320x200 B/W GRAPHICS |
- | = 06 - 640x200 B/W GRAPHICS |
- | = 07 - 80x25 MONOCHROME ALPHA |
- INPUT PARAMETERS: NONE | = 08 - 160x200 COLOR GRAPHICS (PCJR) |
- OUTPUT PARAMETERS: NONE | = 09 - 320x200 COLOR GRAPHICS (PCJR) |
- MEMORY: | = 0A - 640x200 COLOR GRAPHICS (PCJR) |
- | = 0D - 320x200 MONOCHROME GRAPHICS (EGA +) |
- 50:0 = 00 - PRINT SCREEN HAS NOT BEEN CALLED, OR | = 0E - 640x200 MONOCHROME GRAPHICS (EGA +) |
- UPON RETURN FROM A CALL THERE WERE NO | = 0F - 640x350 MONOCHROME GRAPHICS (EGA +) |
- ERRORS. | = 10 - 640x350 MONOCHROME HI-RES (EGA +) |
- | |
- = 01 - PRINT SCREEN IS ALREADY IN PROGRESS. | AH = 01 - SET CURSOR TYPE |
- | |
- = FF - ERROR ENCOUNTERED DURING PRINTING. | CH = TOP LINE FOR CURSOR (BITS 4-0) |
- | CL = BOTTOM LINE FOR CURSOR (BITS 4-0) |
- | |
- ┌───────────────────────┐ | AH = 02 - SET CURSOR POSITION |
- │ INT 08 - SYSTEM TIMER │ | |
- └───────────────────────┘ | DH = ROW |
- | DL = COLUMN |
- INPUT PARAMETERS: NONE | BH = PAGE NUMBER (0 FOR GRAPHICS MODES) |
- OUTPUT PARAMETERS: NONE | |
- MEMORY: | AH = 03 - READ CURSOR POSITION |
- | ON EXIT: |
- 40:6C = NUMBER OF INTERRUPTS SINCE POWER ON (4 BYTES) | DH = ROW # |
- 40:70 = NUMBER OF DAYS SINCE POWER ON (1 BYTE) | DL = COLUMN # |
- 40:67 = DAY COUNTER ON ALL PRODUCTS AFTER PC/AT | CH = TOP LINE FOR CURSOR (BITS 4-0) |
- 40:40 = MOTOR CONTROL COUNT - GETS DECREMENTED | CL = BOTTOM LINE FOR CURSOR (BITS 4-0) |
- AND SHUTS OFF DISKETTE MOTOR IF ZERO | |
- | |
- INT 1C INVOKED AS A USER INTERRUPT. | CONTINUED ON NEXT PANEL |
- | |
-
-
- | |
- 3 | 4 |
- INT 10 - VIDEO BIOS (CONTINUED) | INT 10 - VIDEO BIOS AH = 11 (CONTINUED) |
- | |
- AH = 04 - READ LIGHT PEN POSITION | AL = 02 - ROM 8X8 DOUBLE DOT |
- ON EXIT: AH = 0 IF LIGHT PEN SWITCH IS NOT TRIGGERED | BL = BLOCK TO LOAD |
- AH = 1 IF REGISTERS HAVE VALID VALUES | |
- DH = ROW | AL = 03 - SET BLOCK SPECIFIER |
- DL = COLUMN | BL = CHARACTER GEN BLOCK SPECIFIER |
- CH = RASTER LINE (0-199) | |
- CX = RASTER LINE ON NEW GRAPHICS MODES | AL = 10 - USER ALPHA LOAD |
- BX = PIXEL COLUMN (0-319,639) | ES:BP = POINTER TO USER TABLE |
- | CX = COUNT TO STORE |
- AH = 05 - SELECT ACTIVE DISPLAY PAGE | DX = CHARACTER OFFSET INTO TABLE |
- AL = NEW PAGE INFO, SEE AH=0 FOR PAGE INFO | BH = NUMBER OF BYTES PER CHARACTER |
- FOR PCjr ONLY: | BL = BLOCK TO LOAD |
- AL = 80 TO READ CRT/CPU PAGE REGISTERS | |
- = 81 TO SET CPU PAGE REGISTER | AL = 11 - ROM MONOCHROME SET |
- BL = CPU PAGE REGISTER | BL = BLOCK TO LOAD |
- = 82 TO SET CRT PAGE REGISTER | |
- BH = CRT PAGE REGISTER | AL = 12 - ROM 8X8 DOUBLE DOT |
- = 83 TO SET CPU AND PAGE REGISTERS | BL = BLOCK TO LOAD |
- BH = CRT PAGE REGISTER | |
- BL = CPU PAGE REGISTER | AL = 20 - USER GRAPHICS CHARS INT 01FH (8X8) |
- ON EXIT: | ES:BP = POINTER TO USER TABLE |
- BH = CRT PAGE REGISTER | |
- BL = CPU PAGE REGISTER | AL = 21 - USER GRAPHICS CHARS |
- | ES:BP = POINTER TO USER TABLE |
- AH = 06 - SCROLL ACTIVE PAGE UP | CX = BYTES PER CHARACTER |
- AL = NUMBER OF LINES, INPUT LINES BLANKED | BL = ROW SPECIFIER |
- CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL | BL = 0 - USER SPECIFIED |
- DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL| DL = ROWS |
- BH = ATTRIBUTE TO BE USED ON BLANK LINE | BL = 1 - 0E ROWS |
- | BL = 2 - 19 ROWS |
- AH = 07 - SCROLL ACTIVE PAGE DOWN | BL = 3 - 2B ROWS |
- AL = NUMBER OF LINES, INPUT LINES BLANKED | |
- CX = ROW,COLUMN OF UPPER LEFT CORNER OF SCROLL | AL = 22 - ROM 8X14 SET |
- DX = ROW,COLUMN OF LOWER RIGHT CORNER OF SCROLL| BL = ROW SPECIFIER |
- BH = ATTRIBUTE TO BE USED ON BLANK LINE | |
- | AL = 23 - ROM 8X8 DOUBLE DOT |
- AH = 08 - READ ATTRIBUTE/CHARACTER AT CURSOR POSITION | BL = ROW SPECIFIER |
- BH = DISPLAY PAGE | |
- ON EXIT: | AL = 30 - RETURN INFORMATION |
- AL = CHARACTER AT CURRENT CURSOR POSITION | ES:BP = POINTER TO TABLE |
- AH = ATTRIBUTE OF CHARACTER (ALPHA MODES ONLY) | DL = ROWS |
- | CX = POINTS |
- AH = 09 - WRITE ATTRIBUTE/CHARACTER AT CURSOR POSITION | BH = INFORMATION DESIRED: |
- BH = DISPLAY PAGE | = 0 - INT 1F POINTER |
- CX = COUNT OF CHARACTERS TO WRITE | = 1 - INT 44 POINTER |
- AL = CHARACTER TO WRITE | = 2 - ROM 8X14 POINTER |
- BL = ATTRIBUTE/COLOR OF CHARACTER. IF | = 3 - ROM DOUBLE DOT POINTER |
- BIT 7=1 IN GRAPHICS MODE THEN XOR | = 4 - ROM DOUBLE DOT POINTER (TOP)|
- THE COLOR VALUE WITH ITS CURRENT VALUE | = 5 - ROM ALPHA ALTERNATE 9X14 |
- | |
- AH = 0A - WRITE CHARACTER ONLY AT CURRENT CURSOR POSITION| AH = 12 - ALTERNATE SELECT (EGA AND AFTER) |
- BH = DISPLAY PAGE | |
- CX = COUNT OF CHARACTERS TO WRITE | BL = 10 - RETURN EGA INFORMATION |
- AL = CHARACTER TO WRITE | ON EXIT: BH = 0 IF COLOR MODE IS IN EFFECT |
- NOTE: SHOULD NOT BE USED IN GRAPHICS MODES | = 1 IF MONO MODE IS IN EFFECT |
- | BL = 0 IF 64K EGA MEMORY |
- AH = 0B - SET COLOR PALETTE | = 0 IF 128K EGA MEMORY |
- BH = 0 FOR BACKGROUND, =1 FOR FOREGROUND | = 0 IF 192K EGA MEMORY |
- BL = COLOR VALUE | = 0 IF 256K EGA MEMORY |
- | CH = FEATURE BITS |
- AH = 0C - WRITE DOT | CL = SWITCH SETTINGS |
- BH = PAGE NUMBER | |
- DX = ROW NUMBER | BL = 20 - SELECT ALTERNATE PRINT SCREEN ROUTINE|
- CX = COLUMN NUMBER | |
- AL = COLOR VALUE (XOR'D IF BIT 7=1) | AH = 13 - WRITE STRING (EGA AND AFTER) |
- | |
- AH = 0D - READ DOT | ES:BP = STRING TO BE WRITTEN |
- BH = PAGE NUMBER | CX = CHARACTER ONLY COUNT |
- DX = ROW NUMBER | DX = POSITION TO BEGIN STRING, IN CURSOR TERMS |
- CX = COLUMN NUMBER | BH = PAGE NUMBER |
- AL = DOT READ UPON RETURN | BL = ATTRIBUTE IF AL BIT 1=0 |
- | AL = TYPE OF WRITE: |
- AH = 0E - WRITE TELETYPE TO ACTIVE PAGE | |
- AL = CHARACTER TO WRITE | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
- BL = FOREGROUND COLOR IN GRAPHICS MODE | │7│6│5│4│3│2│1│0│ AL |
- BH = PAGE NUMBER | └─┴─┴─┴─┴─┴─┴─┴─┘ |
- | │ │ │ │ │ │ │ │ |
- AH = 0F - RETURN CURRENT VIDEO STATE | │ │ │ │ │ │ │ └───── MOVE CURSOR |
- ON EXIT: AL = MODE CURRENTLY SET (SEE AH=0) | │ │ │ │ │ │ └─────── STRING HAS ATTRIBUTES |
- AH = NUMBER OF CHARACTER COLUMNS ON SCREEN | └─┴─┴─┴─┴─┴───────── NOT USED |
- BH = CURRENT ACTIVE DISPLAY PAGE | |
- | AH = 14 - LOAD LCD CHAR FONT (CONVERTIBLE ONLY) |
- AH = 10 - SET/GET PALETTE REGISTERS (EGA AND AFTER) | |
- | AL = 0 - LOAD USER SPECIFIED FONT |
- AL = 00 - SET INDIVIDUAL PALETTE REGISTER | ES:DI = POINTER TO CHARACTER FONT |
- BH = VALUE TO SET | CX = NUMBER OF CHARACTERS TO STORE |
- BL = PALETTE REGISTER TO BE SET | DX = CHAR OFFSET INTO RAM FONT AREA |
- | BH = NUMBER OF BYTES PER CHARACTER |
- AL = 01 - SET OVERSCAN REGISTER | BL = 0 - LOAD MAIN FONT (BLOCK 0) |
- BH = VALUE TO SET | = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
- | |
- AL = 02 - SET ALL PALETTE REGS AND OVERSCAN | AL = 1 - LOAD SYSTEM ROM DEFAULT FONT |
- ES:DX = POINTER TO 16-BYTE TABLE | BL = 0 - LOAD MAIN FONT (BLOCK 0) |
- OF REGISTER VALUES FOLLOWED | = 1 - LOAD ALTERNATE FONT (BLOCK 1)|
- BY THE OVERSCAN VALUE | |
- | AL = 2 - SET MAPPING OF LCD HIGH INT. ATTR. |
- AL = 03 - TOGGLE THE INTENSIFY/BLINKING BIT | BL = 0 - IGNORE HIGH INTENSITY ATTR. |
- BL = 0 - ENABLE INTENSIFY | = 1 - MAP HIGH INT. TO UNDERSCORE |
- BL = 1 - ENABLE BLINKING | = 2 - MAP HIGH INT. TO REVERSE VID.|
- | = 3 - MAP HI INT. TO SEL. ALT FONT |
- AH = 11 - CHARACTER GENERATOR ROUTINE (EGA AND AFTER) | |
- | AH = 15 - RETURN PHYSICAL DISPLAY PARMS (CONVERTIBLE) |
- AL = 00 - USER ALPHA LOAD | ON EXIT: |
- ES:BP = POINTER TO USER TABLE | AX = ALTERNATD DISPLAY ADAPTER TYPE |
- CX = COUNT TO STORE | ES:DI = POINTER TO PARAMETER TABLE: |
- DX = CHARACTER OFFSET INTO TABLE | WORD # INFORMATION |
- BL = BLOCK TO LOAD | 1 MONITOR MODEL NUMBER |
- BH = NUMBER OF BYTES PER CHARACTER | 2 VERTICAL PELS PER METER |
- | 3 HORIZONTAL PELS PER METER |
- AL = 01 - ROM MONOCHROME SET | 4 TOTAL NUMBER OF VERTICAL PELS |
- BL = BLOCK TO LOAD | 5 TOTAL NUMBER OF HORIZONTAL PELS |
- | 6 HORIZ. PEL SEPERATION IN MICROMETERS|
- | 7 VERT. PEL SEPERATION IN MICROMETERS |
- | |
- | |
- CONTINUED ON NEXT PANEL | |
-
-
- | |
- 5 | 6 INT 13 - DISKETTE BIOS (CONTINUED) |
- ┌──────────────────────────────────┐ | |
- │ INT 11 - EQUIPMENT DETERMINATION │ | DISKETTE STATUS DEFINITIONS |
- └──────────────────────────────────┘ | |
- | 80 = TIME OUT │ 08 = DMA FAILURE |
- INPUT PARAMETERS: NONE | 40 = SEEK FAILURE │ 06 = MEDIA CHANGE |
- OUTPUT PARAMETERS: | 20 = NEC CONTROLLER FAILURE │ 04 = SECTOR NOT FOUND |
- | 10 = CRC ERROR │ 03 = WRITE PROTECTED |
- ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐ | 0C = UNSUPPORTED TRACK │ 02 = BAD ADDRESS MARK |
- │F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ AX | 09 = DMA BOUNDARY ERROR │ 01 = INVALID FUNCTION |
- └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘ | |
- │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ | CY = 1 IF STATUS PRESENTED IS NOT ZERO |
- │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─ IPL DISKETTE INSTALLED | |
- │ │ │ │ │ │ │ │ │ │ │ │ │ │ └─── MATH COPROCESSOR | ┌──────────────────────────┐ |
- │ │ │ │ │ │ │ │ │ │ │ │ │ └───── NOT USED | │ INT 13 - FIXED DISK BIOS │ |
- │ │ │ │ │ │ │ │ │ │ │ │ └─────── NOT USED | └──────────────────────────┘ |
- │ │ │ │ │ │ │ │ │ │ └─┴───────── INITIAL VIDEO MODE | |
- │ │ │ │ │ │ │ │ └─┴───────────── # OF DISKETTE DRIVES | UNLESS OTHERWISE NOTED, ALL FIXED DISK INTERRUPT |
- │ │ │ │ │ │ │ └───────────────── NOT USED | CALLS FUNCTION AS FOLLOWS: |
- │ │ │ │ └─┴─┴─────────────────── NUMBER OF RS232 CARDS | INPUT PARAMETERS: |
- │ │ │ └───────────────────────── NOT USED | AH = FUNCTION REQUEST NUMBER |
- │ │ └─────────────────────────── INT. MODEM INSTALLED | AL = NUMBER OF SECTORS |
- └─┴───────────────────────────── NUMBER OF PRINTERS | BX = ADDRESS OF USER BUFFER (ES = SEGMENT) |
- | CH = CYLINDER NUMBER |
- NOTE: INITIAL VIDEO MODE (BITS 4 & 5) | (BITS 9,A = BITS 7,8 OF CL) |
- 00 - UNUSED 01 - 40x25 COLOR CARD | CL = SECTOR NUMBER |
- 10 - 80x25 COLOR CARD 11 - 80x25 MONOCHROME CARD | DH = HEAD NUMBER |
- | DL = DRIVE NUMBER, BIT 7=1 |
- | OUTPUT PARAMETERS: |
- | AH = STATUS OF OPERATION: |
- ┌────────────────────────────────┐ | |
- │ INT 12 - MEMORY SIZE DETERMINE │ | BB = UNDEFINED ERROR │ 09 = DMA BOUNDARY ERROR |
- └────────────────────────────────┘ | AA = DRIVE NOT READY │ 08 = DMA FAILURE |
- | 80 = TIME OUT │ 07 = PARAMETER ACT. FAIL |
- INPUT PARAMETERS: NONE | 40 = SEEK FAILURE │ 05 = RESET FAILED |
- OUTPUT PARAMETERS: | 20 = CONTROLLER FAILURE │ 04 = SECTOR NOT FOUND |
- | 11 = DATA ECC CORRECTED │ 03 = WRITE PROTECT ERROR |
- AX = NUMBER OF CONTIGUOUS 1K BLOCKS OF MEMORY | 10 = BAD ECC ON DISK READ│ 02 = BAD ADDRESS MARK |
- | 0B = BAD TRACK DETECTED │ 01 = INVALID FUNCTION REQ. |
- MEMORY: NONE | 0A = BAD SECTOR DETECTED │ 00 = NO ERROR |
- | |
- | CY = 1 IF STATUS NOT ZERO |
- ┌────────────────────────┐ | |
- │ INT 13 - DISKETTE BIOS │ | |
- └────────────────────────┘ | AH = 00 - RESET FIXED DISK SYSTEM |
- | |
- INPUT PARAMETERS: | AH = 01 - READ STATUS OF LAST OPERATION |
- | ON EXIT: AL = STATUS OF LAST OPERATION |
- AH = 00 - RESET DISKETTE SYSTEM | |
- ON EXIT: AH = STATUS | AH = 02 - READ THE DESIRED SECTORS INTO MEMORY |
- | |
- AH = 01 - READ STATUS OF LAST OPERATION | AH = 03 - WRITE THE DESIRED SECTORS FROM MEMORY |
- ON EXIT: AH = STATUS | |
- | AH = 04 - VERIFY THE DESIRED SECTORS |
- AH = 02 - READ THE DESIRED SECTORS INTO MEMORY | |
- AL = NUMBER OF SECTORS | AH = 05 - FORMAT THE DESIRED TRACK |
- BX = ADDRESS OF BUFFER (ES=SEGMENT) | AL = INTERLEAVE VALUE (XT ONLY) |
- CH = TRACK NUMBER | |
- CL = SECTOR NUMBER | BX = FORMAT BUFFER, SIZE = 512 BYTES |
- DH = HEAD NUMBER | THE FIRST 2*(SECTORS/TRACK) BYTES |
- DL = DRIVE NUMBER (BIT 7=0) | CONTAIN F,N FOR EACH SECTOR. |
- ON EXIT: | F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR |
- AL = NUMBER OF SECTORS TRANSFERRED | N=SECTOR NUMBER |
- AH = STATUS | |
- | AH = 06 - FORMAT TRACK AND SET BAD SECTOR FLAGS |
- AH = 03 - WRITE THE DESIRES SECTORS FROM MEMORY | (VALID FOR XT AND PORTABLE ONLY) |
- AL,BX,CX,DX SAME AS AH=02 | AL = INTERLEAVE VALUE (XT ONLY) |
- | BX = FORMAT BUFFER, SIZE = 512 BYTES |
- AH = 04 - VERIFY THE DESIRED SECTORS | THE FIRST 2*(SECTORS/TRACK) BYTES |
- AL,BX,CX,DX SAME AS AH=02 | CONTAIN F,N FOR EACH SECTOR. |
- | F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR |
- AH = 05 - FORMAT THE DESIRED TRACK | N=SECTOR NUMBER |
- AL,BX,CX,DX SAME AS AH=02 | |
- BUFFER CONTAINS ADDRESS FIELDS OF THE | AH = 07 - FORMAT THE DRIVE STARTING AT THE DESIRED TRACK|
- FORM C,H,R,N FOR EACH SECTOR FORMATTED | (VALID FOR XT AND PORTABLE ONLY) |
- | AL = INTERLEAVE VALUE (XT ONLY) |
- AH = 06 - RESERVED FOR FIXED DISK | BX = FORMAT BUFFER, SIZE = 512 BYTES |
- | THE FIRST 2*(SECTORS/TRACK) BYTES |
- AH = 07 - RESERVED FOR FIXED DISK | CONTAIN F,N FOR EACH SECTOR. |
- | F=00 FOR GOOD SECTOR, 80 FOR BAD SECTOR |
- AH = 08 - READ DRIVE PARAMETERS | N=SECTOR NUMBER |
- ON EXIT: AH = STATUS OF OPERATION | |
- | AH = 08 - READ DRIVE PARAMETERS |
- AH = 15 - READ DASD TYPE | ON EXIT: |
- DL = DRIVE NUMBER | DL = NUMBER OF CONSECUTIVE ACKNOWLEDGING DRIVES |
- ON EXIT: | DH = MAXIMUM USABLE VALUE FOR HEAD NUMBER |
- AH = 00 IF DRIVE NOT PRESENT | CH = MAXIMUM USEABLE VALUE FOR CYLINDER NUMBER |
- = 01 IF DISKETTE WITHOUT CHANGE LINE | CL = MAXIMUM USEABLE VALUE FOR SECTOR NUMBER |
- = 02 IF DISKETTE WITH CHANGE LINE | AND CYLINDER NUMBER HIGH BITS |
- | |
- AH = 16 - DISK CHANGE LINE STATUS | AH = 09 - INITIALIZE DRIVE PAIR CHARACTERISTICS |
- DL = DRIVE NUMBER | |
- ON EXIT: | INT 41 POINTS TO DATA BLOCK FOR DRIVE 80 |
- AH = STATUS OF OPERATION | INT 46 POINTS TO DATA BLOCK FOR DRIVE 81 |
- | |
- AH = 17 - SET DASD TYPE FOR FORMAT | DATA BLOCK DEFINITIONS: |
- DL = DRIVE NUMBER | +0 = MAXIMUM NUMBER OF CYLINDERS (DW) |
- AL = 01 - 360KB DISKETTE IN 360KB DRIVE | +2 = MAXIMUM NUMBER OF HEADS (DB) |
- = 02 - 360KB DISKETTE IN 1.2M DRIVE | +3 = STARTING REDUCED WRITE CURRENT CYLINDER |
- = 03 - 1.2M DISKETTE IN 1.2M DRIVE | (DW - XT ONLY) |
- = 04 - 720KB DISKETTE IN 720KB DRIVE | +5 = STARTING WRITE PRECOMP CYLINDER (DW) |
- ON EXIT: | +7 = MAXIMUM ECC DATA BURST LENGTH (DB - XT ONLY) |
- AH = STATUS OF OPERATION | +8 = CONTROL BYTE: |
- | ┌─┬─┬─┬─┬─┬─┬─┬─┐ |
- AH = 18 - SET MEDIA TYPE FOR FORMAT | │7│6│5│4│3│2│1│0│ |
- DL = DRIVE NUMBER | └─┴─┴─┴─┴─┴─┴─┴─┘ |
- CH = LOWER 8 BITS OF NUMBER OF TRACKS | │ │ │ │ │ │ │ │ |
- CL = HIGH 2 BITS OF NUMBER OF TRACKS (6,7) | │ │ │ │ │ └─┴─┴───── DRIVE OPTION |
- = SECTORS PER TRACK (BITS 0-5) | │ │ └─┴─┴─────────── ALWAYS ZERO |
- ON EXIT: | │ └───────────────── DISABLE ECC RETRIES |
- ES:DI = POINTER TO 11-BYTE PARM TABLE | └─────────────────── DISABLE ACCESS RETIRES |
- AH = 00 IF REQUESTED COMBINATION SUPPORTED | |
- = 01 IF FUNCTION NOT AVAILABLE | |
- = 0C IF NOT SUPP. OR DRIVE TYPE UNKNOWN | |
- = 80 IF THERE IS NO MEDIA IN THE DRIVE | |
- | |
- | CONTINUED ON NEXT PANEL |
- CONTINUED ON NEXT PANEL | |
- | |
-